/** 
 * 获取本周、本季度、本月、上月的开端日期、停止日期 
 */
var now = new Date(); //当前日期 
var nowDayOfWeek = (now.getDay() == 0 ? 7 : now.getDay()); //今天本周的第几天 
var nowDay = now.getDate(); //当前日 
var nowMonth = now.getMonth(); //当前月 
var nowYear = now.getYear(); //当前年 
nowYear += (nowYear < 2000) ? 1900 : 0; // 

var lastMonthDate = new Date(); //上月日期 
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
var lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();

//格局化日期：yyyy-MM-dd 
function formatDate(date) {
	var myyear = date.getFullYear();
	var mymonth = date.getMonth() + 1;
	var myweekday = date.getDate();

	if(mymonth < 10) {
		mymonth = "0" + mymonth;
	}
	if(myweekday < 10) {
		myweekday = "0" + myweekday;
	}
	return(myyear + "-" + mymonth + "-" + myweekday);
}

//获得某月的天数 
function getMonthDays(myMonth) {
	var monthStartDate = new Date(nowYear, myMonth, 1);
	var monthEndDate = new Date(nowYear, myMonth + 1, 1);
	var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
	return days;
}

//获取昨天的日期
function getYesterday(){
	var day1 = new Date();
	day1.setDate(day1.getDate() - 1);
	return formatDate(day1);
}

//获得本季度的开端月份 
function getQuarterStartMonth() {
	var quarterStartMonth = 0;
	if(nowMonth < 3) {
		quarterStartMonth = 0;
	}
	if(2 < nowMonth && nowMonth < 6) {
		quarterStartMonth = 3;
	}
	if(5 < nowMonth && nowMonth < 9) {
		quarterStartMonth = 6;
	}
	if(nowMonth > 8) {
		quarterStartMonth = 9;
	}
	return quarterStartMonth;
}

//获得本周的开端日期 
function getWeekStartDate() {
	var weekStartDate = new Date(nowYear, nowMonth, (nowDay - nowDayOfWeek) + 1);
	return formatDate(weekStartDate);
}

//获得本周的停止日期 
function getWeekEndDate() {
	var weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek));
	return formatDate(weekEndDate);
}
//获得本月的开端日期 
function getMonthStartDate() {
	var monthStartDate = new Date(nowYear, nowMonth, 1);
	return formatDate(monthStartDate);
}

//获得本月的停止日期 
function getMonthEndDate() {
	var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
	return formatDate(monthEndDate);
}

//获得上月开端时候 
function getLastMonthStartDate() {
	var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
	return formatDate(lastMonthStartDate);
}

//获得上月停止时候 
function getLastMonthEndDate() {
	var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
	return formatDate(lastMonthEndDate);
}
//获得近三个月开始时候 
function getThreeMonthStartDate() {
	var bDate = new Date();
	bDate.setMonth(bDate.getMonth() - 3);
	var sBeginDate1 = bDate.getFullYear() + "-" + timeFormat((bDate.getMonth() + 1)) + "-" + timeFormat(bDate.getDate());
	return sBeginDate1;
}
//获得近三个月停止时间 
function getThreeMonthEndDate() {
	var eDate = new Date();
	var sEndDate1 = eDate.getFullYear() + "-" + timeFormat((eDate.getMonth() + 1)) + "-" + timeFormat(eDate.getDate());
	return sEndDate1;
}
//获得本季度的开端日期 
function getQuarterStartDate() {

	var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
	return formatDate(quarterStartDate);
}

//或的本季度的停止日期 
function getQuarterEndDate() {
	var quarterEndMonth = getQuarterStartMonth() + 2;
	var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
	return formatDate(quarterStartDate);
}

//当前月份的上一个月：yyyyMM 
function getLastMonth() {
	var myyear = now.getFullYear();
	var mymonth = now.getMonth() + 1;
	
	if(mymonth ==1){
		myyear = myyear -1;
		mymonth = 12;
	}
	else{
		mymonth = mymonth -1;
	}
	
	if(mymonth < 10) {
		mymonth = "0" + mymonth;
	}
	
	return(myyear +'' + mymonth);
}

//当前月份：yyyyMM 
function getCurrentMonth() {
	var myyear = now.getFullYear();
	var mymonth = now.getMonth() + 1;
	
	if(mymonth < 10) {
		mymonth = "0" + mymonth;
	}
	
	return(myyear +'' + mymonth);
}
//月份   日  格式化
function timeFormat(num) {
	if(num < 10) {
		return "0" + num;
	}
	return num + "";
}

//日期格式化
/**
 * 使用方法
 * dateTimeFormat("yyyy-MM-dd hh:mm:ss",new Date());
 */
function dateTimeFormat(type, date) {
	var dateType = {
		"M+": date.getMonth() + 1, //月份   
		"d+": date.getDate(), //日   
		"h+": date.getHours(), //小时   
		"m+": date.getMinutes(), //分   
		"s+": date.getSeconds(), //秒   
		"q+": Math.floor((date.getMonth() + 3) / 3), //季度   
		"S": date.getMilliseconds() //毫秒   
	};
	if(/(y+)/.test(type)){
		type = type.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
	}
	for(var k in dateType){
		if(new RegExp("(" + k + ")").test(type)){
			type = type.replace(RegExp.$1, (RegExp.$1.length == 1) ? (dateType[k]) : (("00" + dateType[k]).substr(("" + dateType[k]).length)));
		}
	}
	return type;
}